home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / dev / src / Rkm_asm.lha / Assembly_Codes / OS_Sources / Graphics / VSprite.s < prev    next >
Text File  |  1992-09-02  |  12KB  |  641 lines

  1.  
  2.  * This program shows you how to correctly set up a VSprite, with Border
  3.  * collision.
  4.  
  5.     INCDIR    WORK:Include/
  6.  
  7.     INCLUDE    exec/exec_lib.i
  8.     INCLUDE    exec/memory.i
  9.     INCLUDE    intuition/intuition_lib.i
  10.     INCLUDE    intuition/intuition.i
  11.     INCLUDE dos/dos_lib.i
  12.     INCLUDE dos/dos.i
  13.     INCLUDE dos/dosextens.i
  14.     INCLUDE    graphics/graphics_lib.i
  15.     INCLUDE    graphics/text.i
  16.     INCLUDE    graphics/gels.i
  17.     INCLUDE    workbench/icon_lib.i
  18.     INCLUDE    workbench/startup.i
  19.     INCLUDE    workbench/workbench.i
  20.  
  21. LIB_VER        EQU    39
  22. TRUE        EQU    -1
  23. FALSE        EQU    0
  24.  
  25.     lea    membuf(pc),a4
  26.  
  27.  * membuf (Memory Buffer) is set-up so that this code can be
  28.  * position-independant. The memory buffer contains the following
  29.  * addresses and their data:
  30.  *
  31.  *   0  Startup Return Message
  32.  *   4  _DOSBase
  33.  *   8  _IntuitionBase
  34.  *  12 _IconBase
  35.  *  16 Old Directory from CurrentDir()
  36.  *  20 Disk Object from GetDiskObject()
  37.  *  24 Argument addresses (30*4)
  38.  * 144 ReadArgs() return value
  39.  * 148 Task address
  40.  * 152 _GfxBase
  41.  * 156 window rastport
  42.  * 160 viewport
  43.  * 164
  44.  * 165
  45.  * 166 Memory Buffer (12 bytes)
  46.  * 178 window
  47.  * 182 value 1 (for ToolType/CLI result)
  48.  * 183 value 2 (for ToolType/CLI result)
  49.  * 184 screen rastport
  50.  * 188
  51.  * 192
  52.  * 194
  53.  * 196
  54.  * 200
  55.  * 202
  56.  * 204 screen
  57.  * 208 colourmap
  58.  * 212
  59.  
  60.  * The Startup code below reads two CLI Arguments/WB ToolTypes as an example
  61.  * of how to programme CLI Arguments/WB ToolTypes.
  62.  *
  63.  * Note: The CLI Arguments/WB ToolTypes are done after Startup and Library
  64.  *       opening, so there is no use for the A0 pointer (which contains
  65.  *       pr_CLI).
  66.  
  67.     suba.l    a1,a1
  68.     move.l    4.w,a6
  69.     jsr    _LVOFindTask(a6)
  70.     tst.l    d0
  71.     beq    exit
  72.     move.l    d0,a5
  73.     move.l    a5,148(a4)
  74.     tst.l    pr_CLI(a5)        ; Was this task started from CLI?
  75.     bne.s    _main            ; Yes.
  76.     lea    pr_MsgPort(a5),a0    ; No. From Workbench.
  77.     jsr    _LVOWaitPort(a6)
  78.     lea    pr_MsgPort(a5),a0
  79.     jsr    _LVOGetMsg(a6)
  80.     move.l    d0,(a4)            ; D0 = A WBStartup Message.
  81.  
  82. _main
  83.     moveq    #LIB_VER,d0
  84.         lea     dos_name(pc),a1
  85.     move.l    4.w,a6
  86.         jsr    _LVOOpenLibrary(a6)
  87.         move.l  d0,4(a4)
  88.         beq     quit
  89.  
  90.         moveq    #LIB_VER,d0
  91.         lea     int_name(pc),a1
  92.         jsr    _LVOOpenLibrary(a6)
  93.         move.l  d0,8(a4)
  94.         beq     cl_dos
  95.  
  96.         moveq    #LIB_VER,d0
  97.         lea     gfx_name(pc),a1
  98.         jsr    _LVOOpenLibrary(a6)
  99.     move.l    d0,_GfxBase
  100.         move.l  d0,152(a4)
  101.         beq     cl_int
  102.  
  103.         moveq    #LIB_VER,d0
  104.         lea     icon_name(pc),a1
  105.         jsr    _LVOOpenLibrary(a6)
  106.         move.l  d0,12(a4)
  107.         beq     cl_gfx
  108.  
  109.  * Check the ToolTypes/CLI Arguments.
  110.  
  111.         move.l    (a4),a0
  112.         tst.l   a0
  113.         beq    fromcli
  114.     move.l    sm_ArgList(a0),a5
  115.         move.l  (a5),d1
  116.     beq    zero_args
  117.     move.l    4(a4),a6
  118.     jsr    _LVOCurrentDir(a6)
  119.         move.l  d0,16(a4)
  120.         move.l    wa_Name(a5),a0
  121.     move.l    12(a4),a6
  122.     jsr    _LVOGetDiskObject(a6)
  123.         move.l  d0,20(a4)
  124.         beq     zero_args
  125.         move.l    d0,a5
  126.         move.l  do_ToolTypes(a5),a5
  127.  
  128.     move.l    a5,a0
  129.         lea    ftstg0(pc),a1
  130.         jsr    _LVOFindToolType(a6)
  131.     tst.l    d0
  132.         beq.s    tt1
  133.     move.l    d0,a3
  134.     move.l    a3,a0
  135.     lea    mtstg0(pc),a1
  136.     jsr    _LVOMatchToolValue(a6)
  137.     tst.l    d0
  138.     beq.s    tto1
  139.     clr.b    182(a4)
  140.     bra.s    tt1
  141. tto1    move.l    a3,a0
  142.     lea    mtstg1(pc),a1
  143.     jsr    _LVOMatchToolValue(a6)
  144.     tst.l    d0
  145.     beq.s    tt1
  146.     move.b    #1,182(a4)
  147. tt1    move.l    a5,a0
  148.         lea    ftstg1(pc),a1
  149.         jsr    _LVOFindToolType(a6)
  150.     tst.l    d0
  151.         beq.s    tt2
  152.     move.l    d0,a3
  153.     move.l    a3,a0
  154.     lea    mtstg2(pc),a1
  155.     jsr    _LVOMatchToolValue(a6)
  156.     tst.l    d0
  157.     beq.s    tto2
  158.     clr.b    183(a4)
  159.     bra.s    tt2
  160. tto2    move.l    a3,a0
  161.     lea    mtstg3(pc),a1
  162.     jsr    _LVOMatchToolValue(a6)
  163.     tst.l    d0
  164.     beq.s    tto3
  165.     move.b    #1,183(a4)
  166.     bra.s    tt2
  167. tto3    move.l    a3,a0
  168.     lea    mtstg4(pc),a1
  169.     jsr    _LVOMatchToolValue(a6)
  170.     tst.l    d0
  171.     beq.s    tto4
  172.     move.b    #2,183(a4)
  173.     bra.s    tt2
  174. tto4    move.l    a3,a0
  175.     lea    mtstg5(pc),a1
  176.     jsr    _LVOMatchToolValue(a6)
  177.     tst.l    d0
  178.     beq.s    tt2
  179.     move.b    #3,183(a4)
  180. tt2
  181.     nop
  182.  
  183.  
  184. free_diskobj
  185.         move.l    20(a4),a0
  186.         jsr    _LVOFreeDiskObject(a6)
  187.     bra    zero_args
  188.  
  189. fromcli    lea    template(pc),a0
  190.     move.l  a0,d1
  191.         lea    24(a4),a5
  192.         move.l  a5,d2
  193.         moveq    #0,d3
  194.     move.l    4(a4),a6
  195.         jsr    _LVOReadArgs(a6)
  196.         move.l  d0,144(a4)
  197.         beq    zero_args
  198.  
  199.     move.l    (a5),a0
  200.     lea    mtstg0(pc),a1
  201.     bsr    cmpbyte
  202.     tst.l    d0
  203.     bne.s    cao1
  204.     clr.b    182(a4)
  205.     bra.s    ca1
  206. cao1    move.l    (a5),a0
  207.     lea    mtstg1(pc),a1
  208.     bsr    cmpbyte
  209.     tst.l    d0
  210.     bne.s    ca1
  211.     move.b    #1,182(a4)
  212. ca1    move.l    4(a5),a0
  213.     lea    mtstg2(pc),a1
  214.     bsr    cmpbyte
  215.     tst.l    d0
  216.     bne.s    cao2
  217.     clr.b    183(a4)
  218.     bra.s    ca2
  219. cao2    move.l    4(a5),a0
  220.     lea    mtstg3(pc),a1
  221.     bsr    cmpbyte
  222.     tst.l    d0
  223.     bne.s    cao3
  224.     move.b    #1,183(a4)
  225.     bra.s    ca2
  226. cao3    move.l    4(a5),a0
  227.     lea    mtstg4(pc),a1
  228.     bsr    cmpbyte
  229.     tst.l    d0
  230.     bne.s    cao4
  231.     move.b    #2,183(a4)
  232.     bra.s    ca2
  233. cao4    move.l    4(a5),a0
  234.     lea    mtstg5(pc),a1
  235.     bsr    cmpbyte
  236.     tst.l    d0
  237.     bne.s    ca2
  238.     move.b    #3,183(a4)
  239. ca2
  240.     nop
  241.  
  242.  
  243. free_cliargs
  244.         move.l    144(a4),d1
  245.         jsr    _LVOFreeArgs(a6)
  246.  
  247. zero_args
  248.  
  249.     suba.l    a0,a0
  250.     lea    scrntags(pc),a1
  251.     move.l    8(a4),a6
  252.     jsr    _LVOOpenScreenTagList(a6)
  253.     move.l    d0,wndwscrn
  254.     beq    cl_icon
  255.  
  256.     suba.l    a0,a0
  257.     lea    wndwtags(pc),a1
  258.     jsr    _LVOOpenWindowTagList(a6)
  259.     move.l    d0,178(a4)
  260.     beq    exit_closescreen
  261.  
  262.     move.l    178(a4),a0
  263.     move.l    wd_RPort(a0),wndwrp
  264.     move.l    wndwrp(pc),156(a4)
  265.     move.l    wndwscrn(pc),a0
  266.     lea    sc_RastPort(a0),a1
  267.     move.l    a1,scrnrp
  268.     lea    sc_ViewPort(a0),a0
  269.     move.l    a0,160(a4)
  270.  
  271.     move.l    152(a4),a6
  272.     jsr    _LVOWaitTOF(a6)
  273.  
  274.     lea    vshead0(pc),a0
  275.     lea    vstail0(pc),a1
  276.     lea    gi0ptr(pc),a2
  277.     move.l    156(a4),a3
  278.     move.l    a2,rp_GelsInfo(a3)
  279.     move.b    #252,(a2)                ; gi_sprRsrvd(a2)
  280.     lea    nl0ptr(pc),a3
  281.     move.l    a3,gi_nextLine(a2)
  282.     lea    lc0ptr(pc),a3
  283.     move.l    a3,gi_lastColor(a2)
  284.     lea    ch0ptr(pc),a3
  285.     move.l    a3,gi_collHandler(a2)
  286.     move.w    #2,gi_leftmost(a2)
  287.     move.w    #2,gi_topmost(a2)
  288.     move.w    #600,gi_rightmost(a2)
  289.     move.w    #190,gi_bottommost(a2)
  290.     jsr    _LVOInitGels(a6)
  291.  
  292.     lea    vs0ptr(pc),a0
  293.     move.w    #VSF_VSPRITE,vs_VSFlags(a0)
  294.     move.w    #100,vs_Y(a0)
  295.     move.w    #500,vs_X(a0)
  296.     move.w    #16,vs_Height(a0)
  297.     move.w    #1,vs_Width(a0)
  298.     move.w    #2,vs_Depth(a0)
  299.     clr.w    vs_MeMask(a0)
  300.     move.w    #$0001,vs_HitMask(a0)
  301.     lea    image0,a1
  302.     move.l    a1,vs_ImageData(a0)
  303.     lea    bl0ptr(pc),a1
  304.     move.l    a1,vs_BorderLine(a0)
  305.     lea    mask0,a1
  306.     move.l    a1,vs_CollMask(a0)
  307.     lea    spritecols0(pc),a1
  308.     move.l    a1,vs_SprColors(a0)
  309.     clr.l    vs_VSBob(a0)
  310.     clr.b    vs_PlanePick(a0)
  311.     clr.b    vs_PlaneOnOff(a0)
  312.     jsr    _LVOInitMasks(a6)
  313.  
  314.     lea    vs0ptr(pc),a0
  315.     move.l    156(a4),a1
  316.     jsr    _LVOAddVSprite(a6)
  317.  
  318.     lea    vs1ptr(pc),a0
  319.     move.w    #VSF_VSPRITE,vs_VSFlags(a0)
  320.     move.w    #50,vs_Y(a0)
  321.     move.w    #500,vs_X(a0)
  322.     move.w    #16,vs_Height(a0)
  323.     move.w    #1,vs_Width(a0)
  324.     move.w    #2,vs_Depth(a0)
  325.     clr.w    vs_MeMask(a0)
  326.     move.w    #$0001,vs_HitMask(a0)
  327.     lea    image1,a1
  328.     move.l    a1,vs_ImageData(a0)
  329.     lea    bl1ptr(pc),a1
  330.     move.l    a1,vs_BorderLine(a0)
  331.     lea    mask1,a1
  332.     move.l    a1,vs_CollMask(a0)
  333.     lea    spritecols1(pc),a1
  334.     move.l    a1,vs_SprColors(a0)
  335.     clr.l    vs_VSBob(a0)
  336.     clr.b    vs_PlanePick(a0)
  337.     clr.b    vs_PlaneOnOff(a0)
  338.     jsr    _LVOInitMasks(a6)
  339.  
  340.     lea    vs1ptr(pc),a0
  341.     move.l    156(a4),a1
  342.     jsr    _LVOAddVSprite(a6)
  343.  
  344.     moveq    #0,d0
  345.     lea    border_check(pc),a0
  346.     lea    gi0ptr(pc),a1
  347.     jsr    _LVOSetCollision(a6)
  348.  
  349.     bsr    draw_vsprite
  350.  
  351.     moveq    #55,d1
  352.     move.l    4(a4),a6
  353.     jsr    _LVODelay(a6)
  354.  
  355.     move.w    #500,d5
  356.  
  357. loop0    lea    vs0ptr(pc),a0
  358.     move.w    d5,vs_X(a0)
  359.     bsr    draw_vsprite
  360.     addq.w    #1,d5
  361.     cmp.w    #607,d5
  362.     blt.s    loop0
  363.  
  364.     moveq    #100,d1
  365.     move.l    4(a4),a6
  366.     jsr    _LVODelay(a6)
  367.  
  368. cleanup_rp
  369.     move.l    156(a4),a0
  370.     clr.l    rp_GelsInfo(a0)
  371.  
  372. exit_closewindow
  373.     move.l    178(a4),a0
  374.     move.l    8(a4),a6
  375.     jsr    _LVOCloseWindow(a6)
  376.  
  377. exit_closescreen
  378.     move.l    wndwscrn(pc),a0
  379.     move.l    8(a4),a6
  380.     jsr    _LVOCloseScreen(a6)
  381.  
  382. cl_icon    move.l  12(a4),a1
  383.     move.l    4.w,a6
  384.         jsr    _LVOCloseLibrary(a6)
  385.  
  386. cl_gfx    move.l  152(a4),a1
  387.     move.l    4.w,a6
  388.         jsr    _LVOCloseLibrary(a6)
  389.  
  390. cl_int    move.l  8(a4),a1
  391.     move.l    4.w,a6
  392.         jsr    _LVOCloseLibrary(a6)
  393.  
  394. cl_dos    move.l  4(a4),a1
  395.     move.l    4.w,a6
  396.         jsr    _LVOCloseLibrary(a6)
  397.  
  398. quit    move.l  #8000000,d0
  399.         moveq    #MEMF_CHIP,d1
  400.     move.l    4.w,a6
  401.     jsr    _LVOAllocMem(a6)
  402.     tst.l    d0
  403.     beq.s    cleanup
  404.     move.l    d0,a1
  405.     move.l    #8000000,d0
  406.     jsr    _LVOFreeMem(a6)
  407. cleanup    tst.l    (a4)
  408.     beq.s    exit            ; Exit - Task was started from CLI.
  409.     move.l    4.w,a6
  410.     jsr    _LVOForbid(a6)
  411.     move.l    (a4),a1            ; Reply to the WB Startup Message and
  412.     jsr    _LVOReplyMsg(a6)    ; Exit - Task was started from WB.
  413. exit    moveq    #0,d0
  414.     rts
  415.  
  416.  
  417.  * Branch-To Routines.
  418.  
  419.  
  420.  * Sub-Routines.
  421.  
  422. draw_vsprite
  423.     move.l    156(a4),a1
  424.     move.l    152(a4),a6
  425.     jsr    _LVOSortGList(a6)
  426.  
  427.     move.l    156(a4),a1
  428.     jsr    _LVODoCollision(a6)
  429.  
  430.     move.l    156(a4),a1
  431.     jsr    _LVOSortGList(a6)
  432.  
  433.     move.l    160(a4),a0
  434.     move.l    156(a4),a1
  435.     jsr    _LVODrawGList(a6)
  436. *    jsr    _LVOWaitTOF(a6)
  437.  
  438.     move.l    8(a4),a6
  439.     jsr    _LVORethinkDisplay(a6)
  440.     rts
  441.  
  442. border_check
  443.  
  444.  * Draw a rectangle to show the collision. Really. You should check d0/d1
  445.  * (flags/mask), a0 (the address of the vsprite hit) and a1 (the returned
  446.  * gelinfo structure for this screen/window). Note: a2/a3 are trashed by
  447.  * DoCollision.
  448.  
  449.     move.l    wndwrp(pc),a1
  450.     clr.w    d0
  451.     clr.w    d1
  452.     move.w    #300,d2
  453.     move.w    #100,d3
  454.     move.l    _GfxBase(pc),a6
  455.     jsr    _LVORectFill(a6)
  456.     rts
  457.  
  458. cmpbyte    move.b  (a0)+,d0
  459.         move.b  (a1)+,d1
  460.         tst.b   d0
  461.         beq.s   byte0
  462.         cmp.b   d1,d0
  463.         beq.s   cmpbyte
  464. byte0    sub.b   d1,d0
  465.         ext.w   d0
  466.         ext.l   d0
  467.         rts
  468.  
  469. findlen    move.l    a0,a1
  470.     moveq    #0,d0
  471. not_nil    tst.b    (a1)+
  472.     beq.s    gotlen
  473.     addq.l    #1,d0
  474.     bra.s    not_nil
  475. gotlen    rts
  476.  
  477.  
  478.  * Structures/Definitions.
  479.  
  480. topaz9
  481.     dc.l    font_name
  482.     dc.w    9
  483.     dc.b    FS_NORMAL,FPF_ROMFONT
  484.  
  485. scrn_title
  486.     dc.b    'VSprite.s',0
  487.     even
  488.  
  489. scrntags
  490.     dc.l    SA_Top,0
  491.     dc.l    SA_Left,0
  492.     dc.l    SA_Width,640
  493.     dc.l    SA_Height,256
  494.     dc.l    SA_Depth,2
  495.     dc.l    SA_DetailPen,0
  496.     dc.l    SA_BlockPen,1
  497.     dc.l    SA_Title,scrn_title
  498.     dc.l    SA_DisplayID,$8000
  499.     dc.l    SA_Type,CUSTOMSCREEN
  500.     dc.l    SA_Font,topaz9
  501.     dc.l    SA_Quiet,TRUE
  502.     dc.l    TAG_DONE
  503.  
  504. wndwtags
  505.     dc.l    WA_Top,0
  506.     dc.l    WA_Left,0
  507.     dc.l    WA_Width,640
  508.     dc.l    WA_Height,256
  509.     dc.l    WA_IDCMP,0
  510.     dc.l    WA_Activate,TRUE
  511.     dc.l    WA_Borderless,TRUE
  512.     dc.l    WA_NoCareRefresh,TRUE
  513.     dc.l    WA_SmartRefresh,TRUE
  514.     dc.l    WA_CustomScreen
  515. wndwscrn
  516.     dc.l    0
  517.     dc.l    TAG_DONE
  518.  
  519. spritecols0    dc.w    $0F00,$0000,$0FFF
  520. spritecols1    dc.w    $0FF0,$00F0,$0FF0
  521.  
  522.  
  523.  * Long Variables.
  524.  
  525. _GfxBase    dc.l    0
  526. scrnrp        dc.l    0
  527. wndwrp        dc.l    0
  528.  
  529.  
  530.  * String Variables.
  531.  
  532. int_name    dc.b    'intuition.library',0
  533. dos_name    dc.b    'dos.library',0
  534. icon_name       dc.b    'icon.library',0,0
  535. gfx_name    dc.b    'graphics.library',0
  536. mtstg0        dc.b    'ARG_ONE',0
  537. mtstg1        dc.b    'ARG_TWO',0
  538. mtstg2        dc.b    'ARG_THREE',0
  539. mtstg3        dc.b    'ARG_FOUR',0,0
  540. mtstg4        dc.b    'ARG_FIVE',0,0
  541. mtstg5        dc.b    'ARG_SIX',0
  542. ftstg0          dc.b    'TOOLTYPE_ONE',0,0
  543. ftstg1          dc.b    'TOOLTYPE_TWO',0,0
  544. template    dc.b    'KEYWORD_ONE/K,KEYWORD_TWO/K',0
  545. font_name    dc.b    'topaz.font',0,0
  546.  
  547.  
  548.  * Buffer Variables.
  549.  
  550. membuf        dcb.b    300,0
  551. gi0ptr        dcb.b    gi_SIZEOF,0
  552. vshead0        dcb.b    vs_SIZEOF,0
  553. vstail0        dcb.b    vs_SIZEOF,0
  554. vs0ptr        dcb.b    vs_SIZEOF,0
  555. vs1ptr        dcb.b    vs_SIZEOF,0
  556. vs2ptr        dcb.b    vs_SIZEOF,0
  557. bl0ptr        dcb.b    2,0
  558. bl1ptr        dcb.b    2,0
  559. bl2ptr        dcb.b    2,0
  560. lc0ptr        dcb.l    8,0
  561. ch0ptr        dcb.l    16,0
  562. nl0ptr        dcb.w    8,0
  563.  
  564.  
  565.     SECTION    GFX,DATA_C
  566.  
  567. mask0    dc.w    $0000
  568.     dc.w    $0000
  569.     dc.w    $0000
  570.     dc.w    $0000
  571.     dc.w    $0000
  572.     dc.w    $0000
  573.     dc.w    $0000
  574.     dc.w    $0000
  575.     dc.w    $0000
  576.     dc.w    $0000
  577.     dc.w    $0000
  578.     dc.w    $0000
  579.     dc.w    $0000
  580.     dc.w    $0000
  581.     dc.w    $0000
  582.     dc.w    $0000
  583.  
  584. mask1    dc.w    $0000
  585.     dc.w    $0000
  586.     dc.w    $0000
  587.     dc.w    $0000
  588.     dc.w    $0000
  589.     dc.w    $0000
  590.     dc.w    $0000
  591.     dc.w    $0000
  592.     dc.w    $0000
  593.     dc.w    $0000
  594.     dc.w    $0000
  595.     dc.w    $0000
  596.     dc.w    $0000
  597.     dc.w    $0000
  598.     dc.w    $0000
  599.     dc.w    $0000
  600.  
  601. image0    dc.w    $0400,$07C0
  602.     dc.w    $0000,$07C0
  603.     dc.w    $0100,$0380
  604.     dc.w    $0000,$07E0
  605.         dc.w    $07C0,$1FF8
  606.     dc.w    $1FF0,$3FEC
  607.     dc.w    $3FF8,$7FDE
  608.     dc.w    $3FF8,$7FBE
  609.         dc.w    $7FFC,$FF7F
  610.     dc.w    $7EFC,$FFFF
  611.     dc.w    $7FFC,$FFFF
  612.     dc.w    $3FF8,$7FFE
  613.         dc.w    $3FF8,$7FFE
  614.     dc.w    $1FF0,$3FFC
  615.     dc.w    $07C0,$1FF8
  616.     dc.w    $0000,$07E0
  617.  
  618. image1    dc.w    $FFFF,$0000
  619.     dc.w    $FFFF,$0000
  620.     dc.w    $FFFF,$0000
  621.     dc.w    $FFFF,$0000
  622.     dc.w    $0000,$0000
  623.     dc.w    $0000,$0000
  624.     dc.w    $0000,$0000
  625.     dc.w    $0000,$0000
  626.     dc.w    $0000,$FFFF
  627.     dc.w    $0000,$FFFF
  628.     dc.w    $0000,$FFFF
  629.     dc.w    $0000,$FFFF
  630.     dc.w    $FFFF,$FFFF
  631.     dc.w    $FFFF,$FFFF
  632.     dc.w    $FFFF,$FFFF
  633.     dc.w    $FFFF,$FFFF
  634.  
  635.  
  636.     SECTION    VERSION,DATA
  637.  
  638.     dc.b    '$VER: VSprite.s V1.01 (22.4.2001)',0
  639.  
  640.  
  641.     END